package com.wps.wdztv6.service;

import com.wps.wdztv6.api.response.EditActiveSaveResponse;
import com.wps.wdztv6.api.response.EditCooperatorsResponse;
import com.wps.wdztv6.api.response.EditForceRefreshResponse;
import com.wps.wdztv6.api.response.PreviewPreloadResponse;
import com.wps.wdztv6.common.R;
import com.wps.wdztv6.vo.WdztViewInfo;

public interface WdztService {
    /**
     * 获取在线编辑链接
     * @param fileId 文件id
     * @return 在线编辑链接
     */
    R<String> getEditUrl(String fileId);

    /**
     * 获取预览链接
     * @param fileId 文件id
     * @param previewMode 预览模式
     * @return 包含软清稿链接和非清稿链接
     */
    R<WdztViewInfo> getPreviewUrl(String fileId,String previewMode);

    /**
     * 预览预处理
     * @param fileId 文件id
     * @param version 文件版本
     * @return 处理结果
     */
    R<PreviewPreloadResponse> previewPreload(String fileId,Integer version,String callbackUrl);

    /**
     * 获取文件在线编辑用户
     * @param fileId 文件id
     */
    R<EditCooperatorsResponse> getEditOnlineCooperators(String fileId);

    /**
     * 强制刷新接口
     * @param fileId 文件id
     * @return
     */
    R<EditForceRefreshResponse> forceFreshEditLink(String fileId);

    /**
     * 强制保存
     * @param fileId 文件id
     * @param timeout 超时时间，带单位 30s
     * @param forceSave 是否强制保存
     * @return
     */
    R<EditActiveSaveResponse> activeSaveEdit(String fileId,String timeout,Boolean forceSave);
}
